package trash.Tmp;

public class StaticCodeBlockConstructor
{
    public static void main(String[] args)
    {
        System.out.println("Lala");

        // Статические поля и статический код инициализации класса отработает только при первой его загрузке
        System.out.println(new ChildClass().toString());
    }
}

class ParentClass
{
    static {
        System.out.println("Static Code Block (aka static constructor) in ParentClass");
    }

    {
        System.out.println("Dynamic Code Block in Parent");
    }

    public ParentClass()
    {
        System.out.println("Ctor Parent");
    }
}

class ChildClass extends ParentClass
{
    static {
        System.out.println("Static Code Block (aka static constructor) in ChildClass");
    }

    {
        System.out.println("Dynamic Code Block in Child");
    }

    public ChildClass()
    {
        System.out.println("Ctor Child");
    }
}
